<%@ page pageEncoding="UTF-8" %>
<%@ page import="util.*" %>
<%@ page import="entidades.*" %>

<%@ page import="java.util.HashMap" %>
<%@ page import="java.io.PrintStream" %>
<%@ page import="com.google.gson.Gson" %>

<%
// Se obtiene la variable que indica el tipo de servicio solicitado.
String svc = request.getParameter("service");

if(svc != null)
    {
	String resultado = "";

	try{
		// El servicio 'login' verifica si el nombre de usuario y la password con correctos y se loguea al usuario.
		if(svc.compareTo("login") == 0)
			{
			String nombre = request.getParameter("nombre");
			String pass = request.getParameter("password");
			Usuario user = Usuario.login(nombre, MySQL.toMD5(pass));

			if(user != null && user.getId() != 0)
				{
				Sesiones.loguear(session, user);
				resultado = Json.getOkMsj();
				}
			else
				{ resultado = Json.getErrorMsj("Nombre de usuario o contraseña incorrecta"); }
			}

		// El servicio 'actualizar' verifica si el nombre de usuario y la password con correctos, actualiza la password y loguea al usuario.
		if(svc.compareTo("actualizar") == 0)
			{
			String nombre = request.getParameter("nombre");
			String pass = request.getParameter("password");
			String passN = request.getParameter("passwordNueva");
			Usuario user = Usuario.login(nombre, MySQL.toMD5(pass));

			if(user != null && user.getId() != 0)
				{
				user.setPassword(MySQL.toMD5(passN));
				user.guardar();
				Sesiones.loguear(session, user);

				resultado = Json.getOkMsj();
				}
			else
				{ resultado = Json.getErrorMsj("Nombre de usuario o contraseña incorrecta"); }
			}

		}catch(Exception e)
			{ resultado = Json.getErrorMsj(e); }

	out.print(resultado);
    }
%>

